The command syntax is
/fill <from> <to> <block> replace [<filter>]
So in your case it is something like
/fill ~-25 ~-10 ~-25 ~25 ~10 ~25 minecraft:ice 0 replace minecraft:water
which would be execute off of the player every few seconds to get it all. This wouldn't get it all at once but wherever the player moves.
Note this may work slower if a lot of people are in the same world.