code: def _worker_fn(samples, batchify_fn, dataset=None):
      
      # pylint: disable=unused-argument
      # it is required that each worker process has to fork a new MXIndexedRecordIO handle
      # preserving dataset as global variable can save tons of overhead and is safe in new process
      global _worker_dataset
      batch = batchify_fn([_worker_dataset[i] for i in samples])
      buf = io.BytesIO()
      ForkingPickler(buf, pickle.HIGHEST_PROTOCOL).dump(batch)
      return buf.getvalue()
docs: Function for processing data in worker process.