RPC messages are sent and received in parallel to execution of
   Python code. This method is thread-safe. This method will
   immediately return a "Future" that can be awaited on.
Parameters:
      * to (str or WorkerInfo or int) --
        name/rank/"WorkerInfo" of the destination worker.
  * **func** (*Callable*) -- a callable function, such as Python
    callables, builtin operators (e.g. "add()") and annotated
    TorchScript functions.

  * **args** (*tuple*) -- the argument tuple for the "func"
    invocation.

  * **kwargs** (*dict*) -- is a dictionary of keyword arguments
    for the "func" invocation.

  * **timeout** (*float**, **optional*) -- timeout in seconds to
    use for this RPC. If the RPC does not complete in this amount
    of time, an exception indicating it has timed out will be
    raised. A value of 0 indicates an infinite timeout, i.e. a
    timeout error will never be raised. If not provided, the
