Let $D=(Q,\Sigma,\delta,q_0,F)$ be the DFA which recognizes $L$.
We need to construct an automaton which can simultaneously start from the initial ($q_0$) as well as "middle" state ($q_m$) of $D$, and parallelly parse two occurrences of $w$, one from $q_0$ to $q_m$ and another from $q_m$ to some accepting state.
When the first half is parsed, we also need to remember what this "middle" state $q$ was. Thus the machine will work on $Q\times Q\times Q$ state space, two to parse both halves of string, and third to remember the middle state.
The NFA which accepts $\sqrt{L}$ is: $N=(Q\times Q\times Q, \Sigma, \Delta, Q_0, F')$, where
$Q_0=\{(q_0,q_m,q_m)|q_m\in Q\}$
$F'=\{(q_m,q_f,q_m)|q_f\in F, q_m\in Q\}$
$\Delta=\{((q_1,q_2,q_m),a,(q_1',q_2',q_m))|\delta(q_1,a)=q_1', \delta(q_2,a)=q_2'\}$
Using this, it can easily be shown: $x\in \sqrt{L}\iff\exists$ an accepting run of $N$