Can't use my supervisor in Task.Supervisor.async_stream_nolink

I have a very simple supervisor:

defmodule MySupervisor do
    use Supervisor

    def start_link do
        Supervisor.start_link(__MODULE__, [])
    end

    def init([]) do
        children= [
            worker(Basic, [])
        ]

        supervise(children, strategy: :one_for_one)
    end
end

defmodule Basic do
    use GenServer

    def start_link do
        GenServer.start_link(__MODULE__, [], name: __MODULE__)
    end
end

If I try to use it into Task.Supervisor.async_stream_nolink/4, like:

{:ok, supervisor} = MySupervisor.start_link
strings = ["long string", "longer string", "there are many of these"]
stream = Task.Supervisor.async_stream_nolink(supervisor, strings, fn text -> text |> String.codepoints |> Enum.count end)
Enum.reduce(stream, 0, fn {:ok, num}, acc -> num + acc end) |> IO.puts

I get error:

** (EXIT from #PID<0.70.0>) an exception was raised:
** (MatchError) no match of right hand side value: {:error, {:EXIT, {:undef, [{Basic, :start_link, [#PID<0.70.0>, :monitor, {:nonode@nohost, #PID<0.80.0>}, {:erlang, :apply, [#Function<0.42548593 in file:t
est.exs>, [“long string”]]}], }, {:supervisor, :do_start_child_i, 3, [file: ‘supervisor.erl’, line: 381]}, {:supervisor, :handle_call, 3, [file: ‘supervisor.erl’, line: 406]}, {:gen_server, :try_handle_call,
4, [file: ‘gen_server.erl’, line: 615]}, {:gen_server, :handle_msg, 5, [file: ‘gen_server.erl’, line: 647]}, {:proc_lib, :init_p_do_apply, 3, [file: ‘proc_lib.erl’, line: 247]}]}}}
(elixir) lib/task/supervisor.ex:265: anonymous fn/4 in Task.Supervisor.build_stream/5
(elixir) lib/task/supervised.ex:332: Task.Supervised.stream_monitor/6

17:44:25.983 [error] Process #PID<0.80.0> raised an exception
** (MatchError) no match of right hand side value: {:error, {:EXIT, {:undef, [{Basic, :start_link, [#PID<0.70.0>, :monitor, {:nonode@nohost, #PID<0.80.0>}, {:erlang, :apply, [#Function<0.42548593 in file:test.
exs>, [“long string”]]}], }, {:supervisor, :do_start_child_i, 3, [file: ‘supervisor.erl’, line: 381]}, {:supervisor, :handle_call, 3, [file: ‘supervisor.erl’, line: 406]}, {:gen_server, :try_handle_call, 4,
[file: ‘gen_server.erl’, line: 615]}, {:gen_server, :handle_msg, 5, [file: ‘gen_server.erl’, line: 647]}, {:proc_lib, :init_p_do_apply, 3, [file: ‘proc_lib.erl’, line: 247]}]}}}
(elixir) lib/task/supervisor.ex:265: anonymous fn/4 in Task.Supervisor.build_stream/5
(elixir) lib/task/supervised.ex:332: Task.Supervised.stream_monitor/6

17:44:25.987 [error] GenServer MySupervisor terminating
** (MatchError) no match of right hand side value: {:error, {:EXIT, {:undef, [{Basic, :start_link, [#PID<0.70.0>, :monitor, {:nonode@nohost, #PID<0.80.0>}, {:erlang, :apply, [#Function<0.42548593 in file:test.
exs>, [“long string”]]}], }, {:supervisor, :do_start_child_i, 3, [file: ‘supervisor.erl’, line: 381]}, {:supervisor, :handle_call, 3, [file: ‘supervisor.erl’, line: 406]}, {:gen_server, :try_handle_call, 4,
[file: ‘gen_server.erl’, line: 615]}, {:gen_server, :handle_msg, 5, [file: ‘gen_server.erl’, line: 647]}, {:proc_lib, :init_p_do_apply, 3, [file: ‘proc_lib.erl’, line: 247]}]}}}
(elixir) lib/task/supervisor.ex:265: anonymous fn/4 in Task.Supervisor.build_stream/5
(elixir) lib/task/supervised.ex:332: Task.Supervised.stream_monitor/6
Last message: {:EXIT, #PID<0.70.0>, {{:badmatch, {:error, {:EXIT, {:undef, [{Basic, :start_link, [#PID<0.70.0>, :monitor, {:nonode@nohost, #PID<0.80.0>}, {:erlang, :apply, [#Function<0.42548593 in file:test.ex
s>, [“long string”]]}], }, {:supervisor, :do_start_child_i, 3, [file: ‘supervisor.erl’, line: 381]}, {:supervisor, :handle_call, 3, [file: ‘supervisor.erl’, line: 406]}, {:gen_server, :try_handle_call, 4, [f
ile: ‘gen_server.erl’, line: 615]}, {:gen_server, :handle_msg, 5, [file: ‘gen_server.erl’, line: 647]}, {:proc_lib, :init_p_do_apply, 3, [file: ‘proc_lib.erl’, line: 247]}]}}}}, [{Task.Supervisor, :“-build_str
eam/5-fun-0-”, 4, [file: ‘lib/task/supervisor.ex’, line: 265]}, {Task.Supervised, :stream_monitor, 6, [file: ‘lib/task/supervised.ex’, line: 332]}]}}
State: {:state, {:local, MySupervisor}, :simple_one_for_one, [{:child, :undefined, Basic, {Basic, :start_link, }, :permanent, 5000, :worker, [Basic]}], :undefined, 3, 5, , 0, MySupervisor, }

It would work if I create a supervisor as:

{:ok, supervisor} = Task.Supervisor.start_link
stream = Task.Supervisor.async_stream_nolink(supervisor, strings, fn text -> text |> String.codepoints |> Enum.count end)

But I want to use my own supervisor, and without using the application’s existing top level supervisor.
Any idea?