First of all one-page sites are a little bit hard to optimize because is too little content (of course it's depend of specific site).
Second, 20 keywords it's a quite to much. Use Google Adwords Keyword tool to check which ones are really meaning and worth of work.
Then you must make proper meta tags, h1 titles and content. Of course everything with chosen keywords
Now what you need is a good linking network so built it!