To solve this puzzle you first have to know the boundaries in whose you are working.
There are 20 teams, a total of 190 matches (and 190 points).
You have to divide the 190 points to all teams. The points you have to distribute are 0, 1, 4, 9 and 16 since a team can't get more than 19 points.
So first we go to the team with 0 points. This can only be one because all the other teams have at least 1 win against this team. The second team then has 1 point. Again all other teams now have at least 2 points so the next few teams can have at least 4 points. If we follow this in the end I got 4 teams with 4, 5 teams with 9, 6 teams with 16 2 with 10 and 1 with 12. To fix those few teams with an non square number, we either have to get them to 16 or to 9. when we get them all to 9 we can get a 4 to 9 too (5 points in total).
So the result then is the following:
1 team with 0 points
1 team with 1 points
3 team with 4 points
9 team with 9 points
6 team with 16 points
This is the way I can solve this puzzle, maybe there is a mathematical way I don't know of.