local host has a handle to this module and invoke this module similar
to a regular nn.Module. The invocation however incurs RPC calls to the
remote end and can be performed asynchronously if needed via
additional APIs supported by RemoteModule.
class torch.distributed.nn.api.remote_module.RemoteModule(args, *kwargs)
  A RemoteModule instance can only be created after RPC
  initialization. It creates a user-specified module on a
  specified remote node. It behaves like a regular "nn.Module"
  except that the "forward" method is executed on the remote node.
  It takes care of autograd recording to ensure the backward pass
  propagates gradients back to the corresponding remote module.

  It generates two methods "forward_async" and "forward" based on
  the signature of the "forward" method of "module_cls".
  "forward_async" runs asynchronously and returns a Future. The
  arguments of "forward_async" and "forward" are the same as the
