function can use the "value()" method to get the value. Note
      that if this "Future" is already completed, the given callback
      will be run inline.
  We recommend that you use the "then()" method as it provides a
  way to synchronize after your callback has completed.
  "add_done_callback" can be cheaper if your callback does not
  return anything. But both "then()" and "add_done_callback" use
  the same callback registration API under the hood.

  With respect to GPU tensors, this method behaves in the same way
  as "then()".

  Parameters:
     **callback** ("Future") -- a "Callable" that takes in one
     argument, which is the reference to this "Future".

  Note:

    Note that if the callback function throws, either through the
    original future being completed with an exception and calling
    "fut.wait()", or through other code in the callback, error
    handling must be carefully taken care of. For example, if this
