There's a convenience parameter in WSClean to make it easy to separate a measurement set in small snapshots and image each one separately. The parameter to do this is:
-intervals-out <count>
This tells WSClean to split the measurement set in the given number of intervals, and image each interval separately. The file name of all the image products of an interval will have the interval number preceded by a 't'. For example:
wsclean -intervals-out 100 -scale 1asec -mgain 0.8 -threshold 1 \
-niter 10000 -name cyga MyCygASet.ms
This will output images cyga-t0000-dirty.fits, cyga-t0000-image.fits, and all the other products for t0000, and so for t0001...t0100.
In case you do not want to make an image for all time steps, the -interval parameter can be used to select the range of timesteps that is to be imaged. So, with "-intervals-out 100 -interval 200 300", the first image will be from scan 200, then scan 201 and further until scan 300. Units are in "number of integration-steps".
Note that the selection of timesteps with -interval is done before splitting into snapshots: if a measurement set has 10 timesteps, giving -intervals-out 10 -interval 2 4 is wrong, as it would first select the interval from timestep 2 to 4, and then split those 2 timesteps into 10 intervals.
You can use all other cleaning parameters together with -intervals-out (-mgain, -threshold, -niter... etc.).