Oof, I’m a moron 
Of course each worker process has to open the dataset once, which takes quite a while for a 300gb+ zarr store. Once all the workers have the store opened, everything works quite quickly. So for the first os.cpu_count() number of batches, i’m seeing terrible performance, but afterwards it works fine.