A different way to go that captures more information than merely the intervals is:
result = TransformedDistribution[x^2 + x, Distributed[x, UniformDistribution[{-100, 100}]] ];
Plot[Evaluate[PDF[result, x]], {x, -1, 1}]
(* Discover that the likelihood of various results is not uniform. *)
Interval[{
Minimize[{x, #}, x, Reals][[1]],
Maximize[{x, #}, x, Reals][[1]]
} &[Reduce[PDF[result, x] > 0, x]]]
We can wrap this in a function (includes streamlining from @ybeltukov ):
dependentInterval[func_, marginVar_, varDef___] := Interval[{
MinValue[{marginVar, #}, marginVar, Reals],
MaxValue[{marginVar, #}, marginVar, Reals]
} &[Reduce[
PDF[TransformedDistribution[func, Sequence /@ varDef],
marginVar] > 0, marginVar]
]]
dependentInterval[x^2 + x, x, Distributed[x, UniformDistribution[{-100, 100}]] ]
(* Interval[{-(1/4), 10100}] *)