Solves an optimization problem from different starting points in parallel,
then returns the solution with the lowest cost.
Each solve is performed on a separate thread. Solutions from successful
solves are always preferred over solutions from unsuccessful solves, and
cost (lower is better) is the tiebreaker between successful solves.
Parameter ``solve``:
A user-provided function that takes a decision variable initial guess
and returns a MultistartResult.
Parameter ``initial_guesses``:
A list of decision variable initial guesses to try.