modify their inputs, module attributes, or global state.
Parameters:
      * func (callable or torch.nn.Module) -- A Python
        function or torch.nn.Module that will be invoked. If
        executed in TorchScript, it will execute asynchronously,
        otherwise it will not. Traced invocations of fork will be
        captured in the IR.
  * ***args** -- arguments to invoke *func* with.

  * ****kwargs** -- arguments to invoke *func* with.

Returns:
      a reference to the execution of func. The value T can only
      be accessed by forcing completion of func through
      torch.jit.wait.
Return type:
      torch.jit.Future[T]
Example (fork a free function):
  import torch
  from torch import Tensor
  def foo(a : Tensor, b : int) -> Tensor:
      return a + b
  def bar(a):
      fut : torch.jit.Future[Tensor] = torch.jit.fork(foo, a, b=2)
      return torch.jit.wait(fut)
  script_bar = torch.jit.script(bar)
