Hey @Kanishk_Jain
Thanks for trying out RPC.

multi-process data loading is enabled and  getitem  function is called  num_worker  times and a deadlock is reached.

It could be because it depleted the RPC threads in the thread pool. num_send_recv_threads by default is 4. Does it work if you bump up the number of threads? Sth like:
import torch
from torch.distributed.rpc import ProcessGroupRpcBackendOptions
from datetime import timedelta
import os
import torch.distributed.rpc as rpc

os.environ['MASTER_ADDR'] = 'localhost'
os.environ['MASTER_PORT'] = '29500'

options = ProcessGroupRpcBackendOptions()
options.rpc_timeout = timedelta(seconds=60)
options.init_method = "env://"
options.num_send_recv_threads = 32

rpc.init_rpc("client", rank=0, world_size=2, rpc_backend_options=options)
rpc.shutdown()

The current rpc_backend_options API is too verbose and not well documented. We will improve that in the next release.