yes, i usually have one initial block to dump the signals and other initial block to either initialize the signals or to provide the simulation time to finish.
It is a good idea to have multiple intial blocks. Each for different set of signals (say control signals have one initial block). communication another initial block etc. But it is bad idea if you plan to force any signal value from 2 different inital blocks. SInce they may lead to race condition.