Hi,
When workers = 0, the loading happens synchronously on the same process and so each batch is loaded when asked for.
When workers > 0, since loading is done in other processes, we have more freedom. In particular, we preload future batches in advance so that when you ask for them, they are (hopefully) already ready. And we load the next batch while you’re processing the one you just got.