Trees spread naturally over time, they'll grow around anywhere the player visits, but only on tiles that have "grass" and "dirt" in the entity name, so this will work for vanilla "grass-dry" as well as mods like Alien biomes "grass-purple". Likewise it will not spawn trees on vanilla concrete or modded concrete/tarmac or other man-made floor tiles. Trees will die if the pollution level around it gets too high and new trees will not spawn there either.
NOTE! - This was originally msakuta's mod "Natural Tree Expansion", I'm simply making it work on newer versions of Factorio, but I may add a few things, or may discontinue if msakuta continues work on his mod.
Known issues: Multiplayer desync, I might have a go at fixing it, but no promises as I rarely play multiplayer, so no incentive :-)
NOTE: (May 2017) - I may not continue to update this mod, since releasing it, it seems every man and his dog has now made a tree spawning mod :-)
Change Log:
0.2.0 : Added "landfill" to whitelist, new trees will not spawn if pollution is too high, existing trees will randomly die if the pollution goes too high also. Lowered spawn rate, seemed a bit fast after exploring the world a bit.
0.1.0 : Changed from black-listing tiles to white-listing tiles, anything with "grass" or "dirt" in the entity name will spawn trees, so no trees on concrete, tarmac, sandy deserts etc.
0.0.1 : Bumped factorio version to 0.15.x and added 5DIM's colourful concrete to the list of 'no-go' areas where trees won't spread onto.