Can I square signal in the frequency domain to reduce noise?
Squaring your signal is multiplying it with itself.

Multiplication in frequency domain is convolution in time domain.

So you're correlating the signal in time domain with its time-inverse. I don't think this has beneficial effects aside from a very specific class of signals (namely, the signals which are their own time-inverse). 

You forget why you're interested in SNR in the first place. It's not for the sake of SNR itself. It comes from the assumption that your signal is essentially unharmed but overlaid with additive noise. You're breaking that assumption.

Also, the effect is purely optical; you know, squaring positive numbers is a monotonous operation. So if you need to find something "clearly larger" than something else, you can do this with the original graph just as well.

Adapting the Y-axis to be able to spot signals of very different magnitudes is a very common thing to do, however: for PSD-style plots you typically don't look at abs(spectrum) in a linear scale, but convert it to dB, which is a logarithmic scale; in fact, it hence does quite the opposite of your polynomial scale, but it's much more useful for real-world signals.

There's a few cases where you'd square the time signal (e.g. to allow for easy timing recovery of BPSK signals), but from the top of my head, I can't think of anything where you'd work with the squared DFT; might be useful if we know that a signal has a time-inverse part and were looking for that.

Note that Laurent correctly pointed out that "squaring" is a bit of an imprecise term, and in the complex sense you'd normally use it as "multiplying with the complex conjugate", but that doesn't make much of a difference here.