How did we not think of that! Throw more money at the problem, that always works
I agree that reflexively throwing more money at a problem is not good policy, but investing more money in science (in such forms as higher NIH/NSF budgets, higher graduate student stipends) is definitely part of the solution. Want proof that this strategy works? Look at Singapore. They are luring away American scientists in droves simply by giving them higher salaries and easier access to research funds. Scientists like me respond to financial incentives just like any other person who has bills to pay and food to buy (in fact, I am currently considering taking a research job in Singapore). The same applies to grad students - if you make it easier for them to study by giving them slightly higher stipends and easier access to research funding, they will be more likely to start graduate school and less likely to quit.
I'm not saying we can just increase science funding and this problem will go away, but more money would definitely help.